//GameStateBattle.h
#ifndef __GAMESTATEBATTLE_H__
    #define __GAMESTATEBATTLE_H__

#include "GameState.h"
#include "../Drawing/Surface.h"
#include "../Entity/Entity.h"
#include "../Drawing/Text.h"
#include "../Entity/Player.h"
#include "../Entity/Enemy.h"
#include <sstream>
#include <time.h>

//A class to load an instance of GameStateBattle
class GameStateBattle : public GameState {
    public:

//Virtual functions to set what happens when specific keys are pressed and depressed
//SDLKey sym is the SDL defined symbol for a key
        void OnKeyDown(SDLKey sym, SDLMod mod, Uint16 unicode);
        void OnKeyUp(SDLKey sym, SDLMod mod, Uint16 unicode);

//Activates an instance of GameStateBattle
        void OnActivate();

//Deactivates an instance of GameStateBattle
        void OnDeactivate();

//Currently unused
        void OnLoop();

//Loads and draws the surface display for the battle scene
        void OnRender(SDL_Surface* Surf_Display);

//Creates a pointer to the specific instance of GameStateBattle
        static GameStateBattle* GetInstance();


    private:
        GameStateBattle();
        int random;
        static GameStateBattle Instance;
        SDL_Color fColor;
        SDL_Color bColor;
        SDL_Surface* Surf_Logo;
        SDL_Surface* Dragon;
        SDL_Surface* Hero;
        TTF_Font* Surf_Font;
        Text tx;
        Player Player1;
        Enemy Enemy1;
        std::string s;
        std::string e;
        std::string d;
        std::stringstream out;
        bool playerWon;
        bool isPlayerTurn;
        bool isInitialized;
        SDL_Rect pHP;
        SDL_Rect eHP;
        SDL_Rect hitbox;
};

#endif


